import { useEffect, useState } from "react"
import { Outlet, useLocation,useNavigate } from "react-router-dom"
import { checkRouterAuth } from "./index"
import { isAuthToken } from '@/utils'
// 登录鉴权
const RouterBeforeEach = () => {
    // location 可以获取当前浏览器上的url地址
    const location = useLocation()
    const navigator = useNavigate()
    //用来存储是否可以进入页面
    const [auth, setAuth] = useState()
    // 副作用
    useEffect(() => {
        // location.pathname 浏览器上的url地址
        let obj = checkRouterAuth(location.pathname)

        // 获取的是否是登录状态
        const isLogin = Boolean(isAuthToken())

        if (obj && obj.auth && isLogin === false) {
            setAuth(false)
            // 跳转到登录页面
            navigator('/login', {replace:true})
        }else{
            setAuth(true)
        }
        // 依赖 [] 只在也页面加载时执行一次
    }, [])
    return auth ? <Outlet/> : null
}

export default RouterBeforeEach